package com.lzh.redisdemo.repository;

import com.lzh.redisdemo.pojo.User;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

/**
 * @Classname UserMethodRepository
 * @Description 自定义方法命名方式查询: 根据方法的名字创建查询，只需要按照Spring Data JPA提供的方法命名规则定义方法的名称就可以完成查询工作
 * JPA 在程序执行的时候会根据方法名称进行解析，并自动生成查询语句进行查询
 * @Date 2021/9/27 14:26
 * @Created by liuzihao
 */
public interface UserMethodRepository extends JpaRepository<User,Integer> {

    //注意：方法的名称必须要遵顼驼峰命名规则，xxxBy+ 属性名称(首字母大写) + 查询条件关键字(首字母大写) 只适合简单查询
    //源码在PartTree

    /**
     * 根据用户名模糊查询
     * @param userName
     * @return
     */
    List<User> findByUserNameLike(String userName);

    /**
     * 根据年龄查询(查询大于等于指定年龄的用户信息，例如：查询>=20岁的用户)
     * @param age
     * @return
     */
    List<User> findByAgeGreaterThanEqual(Integer age);

    /**
     * 根据用户名,年龄查询(并且关系)
     * @param userName
     * @param age
     * @return
     */
    List<User> findByUserNameLikeAndAgeGreaterThanEqual(String userName,Integer age);

}
